home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TeX 1995 July
/
TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO
/
tex-k
/
tex-k-archive.past
/
1995.02
/
000003_vieth@thphy.uni-duesseldorf.de_Thu Feb 2 17:55:46 1995.msg
< prev
next >
Wrap
Internet Message Format
|
1995-02-28
|
14KB
Received: from thphy.uni-duesseldorf.de (xerxes.thphy.uni-duesseldorf.de) by cs.umb.edu with SMTP id AA26638
(5.65c/IDA-1.4.4 for <tex-k@cs.umb.edu>); Thu, 2 Feb 1995 14:00:53 -0500
Received: from macbeth.thphy.uni-duesseldorf.de.thphy.uni-duesseldorf.de by thphy.uni-duesseldorf.de (4.1/SMI-4.1)
id AA02220; Thu, 2 Feb 95 16:55:46 +0100
Date: Thu, 2 Feb 95 16:55:46 +0100
From: vieth@xerxes.thphy.uni-duesseldorf.de
Message-Id: <9502021555.AA02220@thphy.uni-duesseldorf.de>
Received: by macbeth.thphy.uni-duesseldorf.de.thphy.uni-duesseldorf.de (4.1/SMI-4.1)
id AA01441; Thu, 2 Feb 95 16:54:57 +0100
To: tex-k@cs.umb.edu
Cc: hobby@research.att.com
Subject: File: web2c.mp.notes
Compiling MetaPost (MP) with web2c-6.1/kpathsea-2.6:
====================================================
Here are some notes on how to compile MetaPost with the current release
of web2c-6.1 with kpathsea-2.6, so that MP can take advantage of the
advanced path searching facilities.
0. Get web2c-6.1, kpathsea-2.6 and set it up:
a) Get web-6.1.tar.gz and web2c-6.1.tar.gz from CTAN:systems/web2c.
b) Get kpathsea-2.6 from either xdvik-18f.tar.gz, dvipsk-5.58f.tar.gz
or dviljk-2.3f.tar.gz from CTAN:dviware/{xdvik,dvipsk,dviljk}.
c) Get the patch web2c.kpathsea-2.6.help from CTAN:systems/web2c
and follow the instructions therein to set up everything under
the common top-level directory kpathsea-2.6. (Note: the patch
web2c.kpathsea-2.5.help seems to work as well with kpathsea-2.6
except for some redundant patches in the top-level configure.)
1. Get John Hobby's original MetaPost distribution for web2c-5.581,
i.e. get metapost.tar.gz from CTAN:graphics/metapost and unpack
it into a separate directory.
The MetaPost distribution is structured as follows:
. top-level files and AT&T copyright disclaimers
./doc documentation files and manual page
./mp sources for MetaPost
./mp/trapdir sources for MetaPost's trap test
./mpware sources for MetaPost support programs
./mplib MetaPost macro files, font map files,
troff support files for MetaPost
and some more documentation files
To compile MetaPost with web2c-6.1/kpathsea-2.6 several files
of the original distribution can be discarded, others need to
be changed via patches and some new files need to be added.
To do so, the following steps are needed:
a) Clean up the MetaPost distribution and rearrange it a bit.
b) Move the files and/or directories to the proper place in
the web2c source tree or the texmf library directory tree.
c) Add some new files from this distribution to the web2c source
tree. These files were mostly derived from similar parts of
the web2c sources, such as web2c/mf and web2c/dviutil. The
required files are located in the shar archive web2c.mp.shar.
d) Apply some patches to various files from the MetaPost and
web2c distributions. These patches are collected in the file
web2c.mp.patch.
These steps will be described in detail below.
2. Step a) Cleaning up:
The following files can be discarded (removed) from the MetaPost
distribution:
./Makefile replaced by web2c/Makefile.in
./defaults.h replaced by web2c/lib/c-auto.h.in
./site.h replaced by web2c/lib/c-auto.h.in (mostly)
./mp/Makefile replaced by web2c/mp/Makefile.in
./mp/convert replaced by web2c/mp/convert (new version)
./mp/fix.lex obsolete
./mp/fixcoerce.c obsolete
./mp/ini_to_trap replaced by web2c/mp/trap.sed
./mp/mathtest.c not needed for production version
./mp/mp.def replaced by web2c/web2c/texmf.defines
./mp/mp.h redundant (except for timing test files)
./mp/mpext.c replaced by web2c/lib/lib.a
./mp/trapmp replaced by web2c/mp/trapenv
./mp/pmath.c not needed for production version
./mp/test_mpd.h not needed for production version
./mp/time.c not needed for production version
./mpware/Makefile replaced by web2c/mpware/Makefile.in
./mpware/convert replaced by web2c/lib/convert
./mpware/dvimpext.c replaced by web2c/lib/lib.a
./mpware/mpware.def replaced by web2c/web2c/common.defines
./mpware/mpware.h redundant
The following files should be rearranged:
./mplib/makempx rename to makempx.in (will be patched later)
./mplib/troffmpx rename to troffmpx.in (will be patched later)
./doc/mp.1 move to top level directory, since it will
be installed in a different place from the
rest of the files in the ./doc subdirectory
./mplib/examples.mp move to ./doc directory
./mplib/mpintro.bib move to ./doc directory
./mplib/mpintro.tex move to ./doc directory
(You might also want to add a \maketitle
just after \begin{document} in this file.)
3. Step b) Installing files and directories:
Now, it's time to install everything in the proper place. Some of
the preceding rearrangements were just to make things easier now.
In most cases you can simply move the directories to the desired
destination instead of copying or moving the files, unless of course
you'll have to move them across filesystems in your installation.
./mp/* move to kpathsea-2.6/web2c/mp
./mp/trapdir/* move/rename to kpathsea-2.6/web2c/mp/MPtrap
./mpware/* move to kpathsea-2.6/web2c/mpware
./mp.1 move/rename to kpathsea-2.6/man/mp.man
./doc/* move to texmf/doc/mp (documentation files)
./mplib/*.mp move to texmf/mp (MetaPost macro files)
./mplib/mproof.tex move to texmf/tex/plain/<somewhere>
./mplib/psfonts.map move/rename tp texmf/dvips/mpfonts.map
(Ideally MP should use the psfonts.map from
dvipsk, but this doesn't work currently.)
./mplib/trfonts.map move to texmf/mplib (troff support files)
./mplib/trchar.adj move to texmf/mplib (troff support files)
./mplib/charlib/* move to texmf/mplib/charlib
./* copy/move to kpathsea-2.6/web2c/{mp,mpware}
(top-level files such as copyright disclaimers
that must preserved for legal reasons)
4. Step c) Adding new files:
In some cases it was necessary to add new files that were developed
on the basis of similar files from other parts of the web2c sources,
such as from web2c/mf (for mp) or from web2c/dviutil (for mpware).
In other cases some existing files were replaced by some similar
files under a different name that serve exactly the same purpose,
but using some slightly different methods. Since it would have
been to complicated to implement the necessary changes via patches
and renaming the files manually, these files are simply distributed
as new files as part of this distribution files, even though they
could have been produced by patching files that were discarded
in Step 2 above.
The following new files have to be added to the web2c sources:
(They are located in the subdirectories of this archive.)
web2c/mp/Makefile.in adapted from web2c/mf/Makefile.in
web2c/mp/convert adapted from web2c/mf/convert
web2c/mp/coerce.add adapted from web2c/mf/coerce.add
web2c/mp/small.sed adapted from web2c/mf/small.sed
web2c/mp/trap.sed adpated from web2c/mf/trap.sed
web2c/mp/trapenv adapted form web2c/mf/trapenv
web2c/mpware/Makefile.in adapted from metapost/mpware/Makefile
web2c/mpware/dmp.h.in adapted from parts of metapost/site.h
5. Step d) Applying files:
Finally, we need to patch a couple of files from the web2c and
the MetaPost distribution by appling the patch web2c.mp.help.
(Note that this assumes that you have previously applied the
web2c.kapthsea-2.x patch.)
The following files are patched from the kpathsea-2.6 directory:
Makefile
kpathsea/HIER Additional search paths for MetaPost.
kpathsea/tex-file.c .
kpathsea/tex-file.h .
kpathsea/texmf.cnf.in .
make/paths.make Additional search paths for MetaPost
make/makevars.make and passing them on to sub-makes.
web2c/Makefile.in
web2c/configure.in
web2c/configure (Sorry, I don't have autoconf!)
web2c/lib/c-auto.h.in Added SMALLMP and FIXPT symbols.
web2c/lib/texmf.c Addtional code for MetaPost.
web2c/lib/texmf.h .
web2c/lib/openinout.c .
web2c/lib/openinput.h .
web2c/lib/cpascal.h .
web2c/lib/common.defines .
web2c/lib/texmf.defines .
web2c/mp/mp.web (Note: These are doc fixes only!)
web2c/mp/mp.ch Several changes and updates.
web2c/mpware/dvimp.ch Several changes and updates.
web2c/mpware/dmp.c Replaced MPPOOL by MPLIB (see dmp.h).
web2c/mpware/newer.c Change site.h to c-auto.h.
web2c/mpware/makempx.in Use @BINDIR@ template for sed.
web2c/mpware/troffmpx.in Use @BINDIR@ template for sed.
web2c/man/Makefile.in
web2c/man/mp.man (Preliminary! Could be improved!)
6. Unless I forgot to mention something, all should be set now
for compiling MetaPost and its support programs.
You should do a 'make distclean' to remove any remaining
config.cache files, then do 'sh configure' and 'make'.
If that succeeds do 'make install' which will also generate
the .mem files for MetaPost (analogous to formats and bases)
and install them along with mp.pool in texmf/ini. To do so,
you'll need to have installed the MetaPost macro files in
texmf/mp first, as mentioned in Step 3.
To test your MetaPost installation, change to /texmf/doc/mp
and try 'mp examples' followed by 'latex mpintro'. Also try
'mp manfig' to generate the figures for mpman. Unfortunately
you can't try out 'mp mpgraph' as the required data files for
the figures are not included in John Hobby's distribution.
7. Things worth mentioning:
a) John Hobby's original change file for MP produces a small
version by default. I have changed this to a big version
using parameters from mp.ch. There is a new SMALLMP option
in c-auto.h.in analogous to SMALLTeX and SMALLMP.
b) John Hobby's change file introduced a '-I' command line option
to activate inimp when using a single (ini)mp binary for virmp
and inimp. I have reverted this to separate binaries in order
to make use of the (symlinked) invocation name as the name of
the mem file to load. Note that a '-I' option on the command
line is *not* ignored; it is treated as a file name instead.
c) When MetaPost is invoked with a '-T' command line option, it
will call the shell script 'troffmpx' instead of 'makempx'
to process labels embedded between btex ... etex blocks.
The default commands for these shell script used to be set
in the top-level MetaPost-specific site.h. They are now set
in web2c/mp/Makefile.in at compile time since the Makefile
knows about the default installation directory $(bindir).
You can still use the environment variable MPXCOMMAND to
overrule the default settings.
d) The shell scripts 'makempx' and 'troffmpx' used to include
default search paths that needed to be adapted manually.
They are now generated automatically; the symbol @BINDIR@
is replaced by the default installation directory $(bindir)
at compile time in web2c/mpware/Makefile.in.
e) The utility program 'dmp' that replaces 'dvitomp' when using
troff mode is still incomplete with respect to path searching.
The default directory for troff support files (MPLIB) is set
in a header file dmp.h that's generated automatically from
dmp.h.in; the symbol @LIBDIR@ is replaced by the default
library installation directory $(libdir) at compile time
from web2c/mpware/Makefile.in.
Path searching for TeX font metrics (for PostScript fonts)
is not yet fully implemented in dmp.c. The default setting
in dmp.h.in currently includes only Adobe Times Roman and
Symbol. The TEXFONTS environment variable can be used to
override this.
f) MetaPost comes with macro files for two standard mem files:
plain.mem and mfplain.mem (compatible to MF's plain.base).
When generating the mem files during 'make install' these
are renamed to mp.mem and mfmp.mem and appropriate symlinks
are set up, so that you can invoke MetaPost as 'mp'
(default) or 'mfmp' (for full METAFONT compatibility).
g) The protection against overwriting a modified texmf.cnf file
by the original texmf.cnf will also prevent installing the
new version of texmf.cnf containing additional search paths
for MetaPost. You may have to update your texmf.cnf manually
in this case.
h) Ideally, MetaPost should use the same psfonts.map as dvips,
but this currently doesn't work as MetaPost apparently gets
confused by the comment lines and aborts prematurely.
Until this is fixed by extending MetaPost's parsing routines
for the font map file, I have simply renamed MetaPost's own
psfonts.map to mpfonts.map and installed that in texmf/dvips.
However, this is certainly not the best solution, also because
the the name of the font map file is hard-wired in mp.ch.